API for JCryptoP.
Public API.

ru.CryptoPro.Crypto.Key
Class MasterSecret

java.lang.Object
  extended by ru.CryptoPro.Crypto.Key.MasterSecret
All Implemented Interfaces:
ru.CryptoPro.JCP.Key.MasterSecretInterface

public class MasterSecret
extends java.lang.Object
implements ru.CryptoPro.JCP.Key.MasterSecretInterface

Данный класс представляет собой реализацию мастер ключа протокола TLS. Также в данном классе представлены основные функции работы с мастер ключом.

Version:2.0

Constructor Summary
MasterSecret(javax.crypto.SecretKey preMaster, byte[] clientRnd, byte[] serverRnd)
          Создание мастер ключа из случайных данных клиента и сервера, а также из премастер ключа.
 
Method Summary
 javax.crypto.SecretKey calculateConnectionKey(byte[] clientRnd, byte[] serverRnd, java.lang.String keyType, byte[] iv, java.security.spec.AlgorithmParameterSpec params)
          Функция подсчета рабочего ключа сессии заданного типа из хеша мастер ключа.
 javax.crypto.SecretKey calculateConnectionKey(byte[] clientRnd, byte[] serverRnd, java.lang.String keyType, byte[] iv, java.security.spec.AlgorithmParameterSpec params, boolean server, boolean write)
          Функция подсчета рабочего ключа сессии заданного типа из хеша мастер ключа.
 byte[] computeFinished(byte[] label, byte[] seed)
          Функция подсчета "finished" сообщения на основе мастер ключа, метки стороны а также хеша всех сообщений сессии.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MasterSecret

public MasterSecret(javax.crypto.SecretKey preMaster,
                    byte[] clientRnd,
                    byte[] serverRnd)
             throws java.security.KeyManagementException,
                    java.security.InvalidKeyException
Создание мастер ключа из случайных данных клиента и сервера, а также из премастер ключа.

Parameters:
clientRnd - случайные данные клиента
serverRnd - случайные данные сервера
preMaster - премастер ключ
Throws:
java.security.KeyManagementException
java.security.InvalidKeyException
Method Detail

calculateConnectionKey

public javax.crypto.SecretKey calculateConnectionKey(byte[] clientRnd,
                                                     byte[] serverRnd,
                                                     java.lang.String keyType,
                                                     byte[] iv,
                                                     java.security.spec.AlgorithmParameterSpec params)
                                              throws java.security.NoSuchAlgorithmException,
                                                     java.security.InvalidKeyException
Функция подсчета рабочего ключа сессии заданного типа из хеша мастер ключа. Хеш мастер ключа считается при создании первого рабочего ключа. Создаваемый ключ может быть одного из типов: Для ключей шифрования в передаваемый массив iv записывается вектор инициализации (место под этот массив должно быть выделено до вызова этой функции). Параметры подсчитываемыого ключа опредляются в соответствии с параметрами params, которые должны являться параметрами шифрования.

Specified by:
calculateConnectionKey in interface ru.CryptoPro.JCP.Key.MasterSecretInterface
Parameters:
clientRnd - случайные данные клиента
serverRnd - случайные данные сервера
keyType - тип создаваемого ключа
iv - вектор инициализации (для ключей шифрования)
params - параметры шифрования создаваемого ключа
Returns:
рабочий ключ сессии
Throws:
java.security.NoSuchAlgorithmException
java.security.InvalidKeyException

calculateConnectionKey

public javax.crypto.SecretKey calculateConnectionKey(byte[] clientRnd,
                                                     byte[] serverRnd,
                                                     java.lang.String keyType,
                                                     byte[] iv,
                                                     java.security.spec.AlgorithmParameterSpec params,
                                                     boolean server,
                                                     boolean write)
                                              throws java.security.NoSuchAlgorithmException,
                                                     java.security.InvalidKeyException
Функция подсчета рабочего ключа сессии заданного типа из хеша мастер ключа. Хеш мастер ключа считается при создании первого рабочего ключа. Создаваемый ключ может быть одного из типов: Для ключей шифрования в передаваемый массив iv записывается вектор инициализации (место под этот массив должно быть выделено до вызова этой функции). Параметры подсчитываемыого ключа опредляются в соответствии с параметрами params, которые должны являться параметрами шифрования.

Specified by:
calculateConnectionKey in interface ru.CryptoPro.JCP.Key.MasterSecretInterface
Parameters:
clientRnd - случайные данные клиента
serverRnd - случайные данные сервера
keyType - тип создаваемого ключа
iv - вектор инициализации (для ключей шифрования)
params - параметры шифрования создаваемого ключа
Returns:
рабочий ключ сессии
Throws:
java.security.NoSuchAlgorithmException
java.security.InvalidKeyException

computeFinished

public byte[] computeFinished(byte[] label,
                              byte[] seed)
                       throws java.security.InvalidKeyException
Функция подсчета "finished" сообщения на основе мастер ключа, метки стороны а также хеша всех сообщений сессии.

Specified by:
computeFinished in interface ru.CryptoPro.JCP.Key.MasterSecretInterface
Parameters:
label - метка стороны - клиент или сервер
seed - хеш всех сообщений сессии
Returns:
"finished" сообщение
Throws:
java.security.InvalidKeyException

Copyright Crypto-Pro.
All rights reserved.